home *** CD-ROM | disk | FTP | other *** search
/ Qu.......ke Neue Level / KroGer Software GmbH - Qu_ke.iso / UTILITY / PRG8.ZIP / Q_FILES.H < prev    next >
C/C++ Source or Header  |  1996-03-02  |  3KB  |  86 lines

  1. /*
  2.  * Copyright (C) 1996 by Raphael Quinet.  All rights reserved.
  3.  *
  4.  * Permission to use, copy, modify, and distribute this software and
  5.  * its documentation for any purpose and without fee is hereby
  6.  * granted, provided that the above copyright notice appear in all
  7.  * copies and that both that copyright notice and this permission
  8.  * notice appear in supporting documentation.  If more than a few
  9.  * lines of this code are used in a program which displays a copyright
  10.  * notice or credit notice, the following acknowledgment must also be
  11.  * displayed on the same screen: "This product includes software
  12.  * developed by Raphael Quinet for use in the Quake Editing Utilities
  13.  * project."  THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR
  14.  * IMPLIED WARRANTY.
  15.  *
  16.  * More information about the QEU project can be found on the WWW:
  17.  * "http://www.montefiore.ulg.ac.be/~quinet/games/editing.html" or by
  18.  * mail: Raphael Quinet, 9 rue des Martyrs, B-4550 Nandrin, Belgium.
  19.  */
  20.  
  21. #ifndef _Q_FILES_H_
  22. #define _Q_FILES_H_
  23. /*
  24.  * Q_FILES.H - Basic file loading and saving routines.
  25.  */
  26.  
  27. /* constants */
  28. /*      file type             ext.  magic  */
  29. #define FTYPE_UNKNOWN 0
  30. #define FTYPE_IWAD    1    /* .wad  "IWAD" */
  31. #define FTYPE_PWAD    2    /* .wad  "PWAD" */
  32. #define FTYPE_PACK    3    /* .pak  "PACK" */
  33. #define FTYPE_WAD2    4    /* .wad  "WAD2" */
  34. #define FTYPE_BSP     10   /* .bsp  (0x17 0x00 0x00 0x00) */
  35. #define FTYPE_MODEL   11   /* .mdl  "IDPO" */
  36. #define FTYPE_SPRITE  12   /* .spr  "IDSP" */
  37. #define FTYPE_WAV     20   /* .wav  "RIFF" */
  38. #define FTYPE_AU      21   /* .au   ".snd" */
  39. #define FTYPE_VOC     22   /* .voc  ?      */
  40. #define FTYPE_PBM_ASC 30   /* .pbm  "P1"   */
  41. #define FTYPE_PGM_ASC 31   /* .pgm  "P2"   */
  42. #define FTYPE_PPM_ASC 32   /* .ppm  "P3"   */
  43. #define FTYPE_PBM_RAW 33   /* .pbm  "P4"   */
  44. #define FTYPE_PGM_RAW 34   /* .pgm  "P5"   */
  45. #define FTYPE_PPM_RAW 35   /* .ppm  "P6"   */
  46. #define FTYPE_BMP     36   /* .bmp  "BM"   */
  47. #define FTYPE_GIF     37   /* .gif  "GIF8" */
  48. #define FTYPE_PCX     38   /* .pcx  (0x0a 0x05 0x01 0x08) */
  49. #define FTYPE_ERROR   -1
  50.  
  51. /* prototypes */
  52. Bool  Exists(char *filename);
  53. void  CreatePathToFile(char *filename);
  54. char *ConvertFilePath(char *filename);
  55. char *UNIXifyFilePath(char *filename);
  56. char *GetBaseName(char *filename);
  57. char *GetFileExtension(char *filename);
  58. char *ChangeFileExtension(char *filename, char *oldext, char *newext);
  59. Int32 GetFileSize(FILE *file);
  60.  
  61. Bool  ReadBytes(FILE *file, void huge *addr, UInt32 size);
  62. Bool  WriteBytes(FILE *file, void huge *addr, UInt32 size);
  63. Bool  CopyBytes(FILE *dest, FILE *source, UInt32 size);
  64.  
  65. int   ReadMagic(FILE *file);
  66. FILE *OpenFileReadMagic(char *filename, int *ftype_r);
  67.  
  68. #ifdef FAT_ENDIAN
  69. Bool ReadInt16(FILE *file, UInt16 huge *x);
  70. Bool ReadInt32(FILE *file, UInt32 huge *x);
  71. Bool ReadFloat32(FILE *file, Float32 huge *x);
  72. Bool WriteInt16(FILE *file, UInt16 huge *x);
  73. Bool WriteInt32(FILE *file, UInt32 huge *x);
  74. Bool WriteFloat32(FILE *file, Float32 huge *x);
  75. #else
  76. #define ReadInt16(f, p)    ReadBytes((f), (p), 2L)
  77. #define ReadInt32(f, p)    ReadBytes((f), (p), 4L)
  78. #define ReadFloat32(f, p)  ReadBytes((f), (p), 4L)
  79. #define WriteInt16(f, p)   WriteBytes((f), (p), 2L)
  80. #define WriteInt32(f, p)   WriteBytes((f), (p), 4L)
  81. #define WriteFloat32(f, p) WriteBytes((f), (p), 4L)
  82. #endif /* FAT_ENDIAN */
  83.  
  84. #endif /* _Q_FILES_H_ */
  85. /* end of file */
  86.